var app = getApp()
// pages/write/write.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 导航栏的高度
    navBarHeight:app.globalData.navBarHeight,
    // 当前所在导航页面
    active:1,
    // 所在的二级导航页面
    activeSecond:1,
    // 创作页面的分类数据
    createClassifyList:[],
    // 创作的内容
    createContent:[],
    // 推荐页面的内容
    recommendList:[],
    // 分页页码
    offset:0,
    // 当前页的随机数种子
    seek:-1,
    // 推荐页面触底加载事件的节流阀
    recommendFlag:false,
    // 标记一下推荐页面是否有更多数据
    recommendMore:true,
    // 获取当前页面的宽高
    w:0,
    h:0,
    // 记录滚动条的数值并在切换tab时重置
    scrollTop:0
  },
  // 监听导航栏改变的事件
  navChange(e){
    this.setData({
      active:e.detail.active,
      offset:0
    })
    const scrollTop = this.data.scrollTop?1:0;
    this.setData({
      scrollTop
    })
    // 重置滚动条的高度
    wx.pageScrollTo({
      scrollTop:scrollTop,
      duration:0
    }
    )
  },
  // 初始化创业页面的分类数据
  async getcreateClassifyList(){
    const res1 =await wx.$http.get('/write/community')
    if(res1.statusCode!==200)return wx.$showMsg()
    const data1 = res1.data
    const res2 = await wx.$http.get('/write/community/creation/classify')
    if(res2.statusCode!==200)return wx.$showMsg()
    const data2 = res2.data
    
    this.setData({
      createClassifyList:data1,
      createContent:data2
    })
  },
  // 监听tags改变事件
  async changeTags(e){
    this.setData({
      activeSecond:e.target.dataset.id
    })
    const {activeSecond} = this.data
    var url = '/write/community/creation/'
    switch(activeSecond){
      case 1 :
        url = url + 'classify';
        break;
      case 2 :
        url = url + 'daily';
        break;
      case 3 :
        url = url + 'language';
        break;
      case 4 :
        url = url + 'note';
        break;
      case 5 :
        url = url + 'writing';
        break;
      case 6 :
        url = url + 'painting';
        break;
      case 7 :
        url = url + 'picture';
        break;
      case 8 :
        url = url + 'music';
        break;
      default:
        break
    }
    const res = await wx.$http.get(url)
    if(res.statusCode !== 200) return wx.$showMsg()
    const data = res.data
    this.setData({
      createContent:data
    })
  },
  // 初始化推荐页面的内容
  async getrecommendList(){
    // 获取当前分页情况
    let offset = this.data.offset
    // 获取这次的随机数种子
    const seek = Math.floor(Math.random()*33);
    // 发送参数并获取推荐列表
    const res = await wx.$http.get('/write/recommend/tourist',{'offset':offset,'seek':seek})
    if(res.statusCode !== 200)return wx.$showMsg();
    const data = res.data
    // 获得数据后分页加一
    offset = offset+1;
    this.setData({
      recommendList:data,
      offset,
      seek
    })
  },
  // 推荐页面获取下一页数据
  async getNextRecommendList(){
    if(this.data.active!=2)return;
    if(!this.data.recommendMore)return wx.$showMsg('已经没有更多了！');
    const flag = this.data.recommendFlag;
    if(flag)return
    // 节流操作：打开节流阀
    this.setData({
      recommendFlag:true
    })
    let offset = this.data.offset;
    const seek = this.data.seek;
    let oldList = this.data.recommendList;
    // 发送参数并获取推荐列表
    const res = await wx.$http.get('/write/recommend/tourist',{'offset':offset,'seek':seek})
    if(res.statusCode !== 200)return wx.$showMsg();
    const data = res.data
    if(data.length === 0)wx.$showMsg('已经没有更多了！')
    this.setData({
      recommendMore:false
    })
    const newList = oldList.concat(data)
    // 增加分页
    offset = offset+1;
    // 结束后关闭节流阀
    this.setData({
      recommendList:newList,
      offset,
      recommendFlag:false
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getcreateClassifyList()
    this.getrecommendList()
    var w = wx.getSystemInfoSync().windowWidth;
    var h = wx.getSystemInfoSync().windowHeight;
    this.setData({
      w,h
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // const navInstance = this.selectComponent('.nav-bar');
    // console.log(navInstance.data);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.getNextRecommendList()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})